The present invention relates to disc drives. More particularly, the present invention relates to trellis codes used in encoding, detecting, and decoding data in a partial response channel.
A typical disc drive includes one or more magnetic discs mounted for rotation on a hub or spindle. A typical disc drive also includes a transducer supported by a hydrodynamic air bearing which flies above each magnetic disc. The transducer and the hydrodynamic air bearing are collectively referred to as a data head. A drive controller is conventionally used for controlling the disc drive based on commands received from a host system. The drive controller controls the disc drive to retrieve information from the magnetic discs and to store information on the magnetic discs.
An electromechanical actuator operates within a negative feedback, closed-loop servo system. The actuator moves the data head radially over the disc surface for track seek operations and holds the transducer directly over a track on the disc surface for track following operations.
Information is typically encoded and stored in concentric tracks on the surface of magnetic discs by providing a write signal to the data head to encode flux reversals on the surface of the magnetic disc representing the data to be stored. In retrieving data from the disc, the drive controller controls the electromechanical actuator so that the data head flies above the magnetic disc, sensing the flux reversals on the magnetic disc, and generating a read signal based on those flux reversals. The read signal is typically conditioned and then decoded by a read channel or the drive controller to recover data represented by flux reversals stored on the magnetic disc, and consequently represented in the read signal provided by the data head.
A typical communication channel represented by such a disc drive includes an encoder which encodes user input data, the data head, the medium (e.g., the magnetic or optical disc), preconditioning logic (such as amplifiers, filters, a gain loop, a sampler, a timing loop, and clock generation), a data detector, and a decoder for decoding the detected data to provide an output indicative of estimated user data.
A Viterbi detector has been investigated in the past for use as a data detector in a disc drive channel. A Viterbi detector acts as a maximum-likelihood sequence estimator when the input to the detector consists of a signal plus additive white, Gaussian noise, and when a typical branch metric (the square of the error in the signal provided to the detector) is used. Viterbi detectors conventionally operate according to a trellis structure. Trellis codes have been implemented in class-four partial response channels (PR4), with channel polynomials 1-D.sup.2, which can be thought of as the interleaving of two dicode channels, each with channel polynomial 1-D. Many of these trellis codes provide independent coding and detection of each interleave. Previous trellis codes have encountered practical implementation obstacles which have limited the practical code rates attainable. One such previous implementation obstacle has been the design of a small encoder-decoder for the code.
Channel codes are typically characterized by the code rate, run length constraints, and distance properties of the code. In NRZI notation, a channel input of one corresponds to the recording of a magnetic medium transition, while a zero corresponds to no recorded transition. A (d,k) code refers to a constrained code with a minimum number d of zeros between ones and a maximum number of, at most, k zeros between ones in an NRZ encoded bit stream. Thus, for example, (0, k) code refers to a constrained code where there is no minimum constraint on the number of zeros between ones and there is a maximum constraint of, at most, k, zeros between ones in an NRZ encoded bit stream. Also, the notation (0, G/I) is sometimes used for PR4 channel codes, where I represents the maximum number of the consecutive zeros in each interleave of the two dicode channel streams, and G represents the maximum number of consecutive zeros in the combination of the two dicode channel streams.
Many communication systems, including disc drives, use matched spectral null (MSN) coding techniques in implementing a trellis code in a detector. MSN coding techniques involve determining the spectral nulls of a channel (the particular frequencies at which the channel power spectrum is zero), using a code to encode user input wherein the code has the same spectral nulls as those identified for the channel, and modifying the Viterbi detector to implement the code on the particular channel given any constraints placed thereon.
Spectral null sequences can be generated or represented in any of the following ways, which are relevant to the present invention.
First, the spectral null sequences can be represented by diagrams that reflect a bound on the accumulated charge or the running digital sum. This type of representation is described in greater detail in R. W. Wood, Viterbi Reception of Miller-Squared Code on the Tape Channel, PROC. 4th Int. Conf. Video and Data Recording, IERE Conf. PROC. 54, South Hampton, England, April, 1982, pages 333-343. Such spectral null sequences are typically generated by a finite state machine, such as that disclosed in U.S. Pat. No. 4,888,779, issued to R. W. Karabed and P. H. Siegel, entitled MATCHED SPECTRAL NULL TRELLIS CODES FOR PARTIAL RESPONSE CHANNELS, and issued on Dec. 19, 1989.
Second, spectral null sequences can also be generated at the output of a sampled partial-response channel (typically represented as a digital filter) where the channel frequency response has a null at a particular frequency. Such a system is described in the Karabed and Siegel '779 patent mentioned above.
In addition, the two above approaches can be combined. In essence, matched spectral null coding is used for a partial response channel. Such a system is set out in the Karabed and Siegel patent mentioned above, and also in R. W. Karabed and P. H. Siegel, Matched Spectral Null Codes For Partial Response Channels, IEEE Trans. Info. TH Vol. 37, No 3, pp. 818-855, May 1991.
Spectral null sequences have been shown to contain certain inherent distance properties that can improve the reliability of their recovery from data samples generated at the output of a noisy communications channel, such as a disc drive. It has also been demonstrated that, at moderate to high signal-to-noise ratios, performance that is equivalent to that of a maximum-likelihood detector can be achieved by applying the algorithm executed by a Viterbi detector to a reduced-complexity trellis that tracks the spectral content of sequences, and the memory of the partial response channel.
Particularly, the free distance of a particular detector trellis (sometimes referred to as the free distance) is defined as the minimum sum of the squared differences between noiseless sample values resulting from two distinct sequences that diverge from a common state on the trellis and remerge to a common state. For partial response, maximum likelihood detection (PRML detection), the free distance is two, but the first order matched spectral null codes described by U.S. Pat. No. 4,888,779 granted on Dec. 19, 1989, increased the free distance to four. Other coding constraints are generally imposed which improve the reliability of data recovery. Such codes include the incorporation of conventional (d, k) run length constraints.
The likelihood of Viterbi detector error events decreases as a function of the free distance. The maximum length of dominant error events encountered by the Viterbi detector is determined by the length of the parallel paths in the trellis that do not accumulate distance. Sequences which correspond to parallel paths through a trellis which do not accumulate distance are referred to as quasicatastrophic sequences. In essence, two parallel paths through the trellis can represent two codewords which are equidistant from the actual measured values. Thus, the Viterbi detector has more difficulty while the paths remain parallel in determining which is the correct path through the trellis.
One solution to the problem encountered with quasicatastrophic sequences is to use coding techniques to impose constraints on the channel output sequences in order to prevent the occurrence of quasicatastrophic trellis sequences. Such coding constraints may require, for example, a coded path with a parallel path to periodically migrate to one of the trellis borders until the parallel path collides with the trellis border and is forced to take a direction which causes the path to become non-parallel.
This approach is adequate in some instances. However, potential drawbacks are associated with this approach. First, for particularly high-rate codes, the encoder and the decoder functions may entail additional complexity. Also, while the maximum length of quasicatastrophic sequences is guaranteed to be bounded above by a fixed finite number, it may still be too long for a particular application.
In order to overcome these disadvantages, another technique has been discussed by Fredrickson et al. in U.S. Pat. No. 5,280,489. That patent describes Viterbi detectors for matched spectral null codes with a trellis structure in which a predetermined number of states and edges are deleted in a preselected time-dependent pattern to create a time-varying trellis which significantly limits the maximum length of minimum distance error events. In other words, the trellis structure implemented by the detector periodically (i.e., in a time-dependent fashion) pairs down to a group of preselected states chosen such that parallel paths through the trellis structure (which do not violate k constraints placed on the code) must become non-parallel upon reaching, or before reaching, the preselected states.
In addition, U.S. Pat. No. 5,257,272, issued to Fredrickson on Oct. 26, 1993 makes further advances. In that reference, a Viterbi detector is described which provides a time-varying trellis structure for a run length limited (RLL) code, wherein only certain values of a preselected attribute tracked modulo N are allowed every M bits, to increase the minimum distance between output sequences of a partial response channel and to eliminate quasicatastrophic sequences.
Many problems still exist in obtaining high code rate trellis codes for relevant channels which can be adequately constrained and limited to improve performance, but which can also be practically implemented.